﻿
using System.ComponentModel;

namespace Types.Enumerations
{
    #region [REPORT CODES] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    public enum EnumReportFormats
	{
		PDF,
		EXCEL,
		IMAGE,
		XML,
		WORD,
		MHTML
	}

    public enum EnumReportDelivery
	{
		EMail,
		FileShare
	}

    public enum EnumBrowserBehavior
	{
		DownloadFile,
		ShowInBrowser,
		Attachment,
		Inline
	}

    #endregion

    #region [ISLEM TIPLERI] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    public enum EnumCrudTypes
	{
		[Description("Insert")]
        Insert = 1,
		[Description("Update")]
        Update = 2,
		[Description("Delete")]
        Delete = 3,
	}

	public struct CrudType
	{
        public const byte Insert = 1;
        public const byte Update = 2;
        public const byte Delete = 3;

	}

	#endregion

    #region [YES-NO] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    public enum EnumYesNo
	{
		[Description("Evet")]
        Yes = 1,
		[Description("Hayır")]
        No = 2,
		[Description("Belirsiz")]
        Unknown = 3,
	}

	public struct YesNoInt
	{
		public const byte Yes = 1;
		public const byte No = 2;
		public const byte Unknown = 3;

	}

	public struct YesNoStr
	{
        public const string Yes = "E";
        public const string No = "H";
        public const string Unknown = "B";
	}

	#endregion

    #region [DEFAULT VALUES] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    public struct DefaultValues
	{
		public const string DefaultMinDate = "1900-01-01 00:00:00";
		public const string DefaultMaxDate = "2999-12-31 23:59:59";
	}

	#endregion

	#region [EXCEPTION CODES] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    public enum EnumExceptionType
    {
        SystemException = 0,
        ApplicationException = 1,
        CanceledException = 2
    }

    public struct ExceptionPresentationId
	{
		public const string UnableToRetrieveTheErrorNumber = "0";
        public const string UnableToWriteErrorToDatabase = "-1";
		public const string ContextNull = "-2";
        public const string UnableToRetrieveErrorInformation = "-3";
        public const string UnableToSentErrorToServer = "-4";
		public const string SessionNull = "-5";
		public const string CommunicationException = "-6";
	}

	public struct ExceptionEventLogId
	{
        public const int UnableToWriteErrorToDatabase = 5555;
		public const int ContextNull = 5556;
        public const int UnableToRetrieveErrorInformation = 5557;
		public const int FileNotExist = 5558;

        public const int UnableToSentErrorToServer = 6666;
		public const int SessionNull = 6667;
		public const int CommunicationException = 6668;

		public const int GeneralPurposeEventLogID = 1111;
	}

	#endregion

    #region [CACHE CODES] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    public enum EnumCacheProviders
    {
        CustomInMemoryCache,
        FileDependentCache,
        VelocityCache
    }

    public enum EnumFileDependentCacheRefreshMethod
    {
        PullViaUNCPath,
        PushViaASPX
    }

    public enum EnumCacheType
    {
        ClientCache,
        ServerCache
    }

	public struct CacheEventLogId
	{
		public const int CacheError = 3333;
		public const int CacheFilled = 3344;
		public const int CacheCleaned = 3345;
		public const int PartialCacheChecking = 3346;
		public const int CacheCouldNotCleaned = 3347;
		public const int DoublicatedCacheItem = 1234;
	}

	#endregion

    #region [SITE TYPES] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    public enum EnumSiteTypes
	{
		[Description("Unknown")]
        Unknown = 0,
		[Description("Production")]
        Production = 1,
        [Description("Training")]
        Training = 2,
		[Description("Test")]
		Test = 3,
		[Description("Development")]
        Development = 4,
	}

	public struct SiteType
	{
        public const byte Production = 1;
        public const byte Training = 2;
		public const byte Test = 3;
        public const byte Development = 4;
	}

	#endregion

	#region [SMS ENUMS] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	public enum EnumSmsSenders
	{
		[Description("sender name 1")]
		SenderName1 = 1,
        [Description("sender name 2")]
        SenderName2 = 2,
        [Description("sender name 3")]
        SenderName3 = 3,
	}

	public struct SmsSender
	{
		public const string eicisleri = "e-icisleri";
		public const string IBBID = "IB BID";
		public const string IcisleriBKN = "IcisleriBKN";

	}

	#endregion
}

